import { defHttp } from '/@/utils/http/axios';
// import { LoginResultModel, GetUserInfoModel } from './model/indx';
const baseAPi = '/Device/';
const baseBaoJunAPi = '/ProjectServer/';
const baseTemplateApi = '/DeviceTemplate/';

// /**
//  * @description: user login api
//  */
// export function loginApi(params) {
//   return defHttp.post<LoginResultModel>({
//     url: Api.Login,
//     params,
//   });
// }

/**
 * @description: 获取树状图
 */
export function getDriverTree(data) {
  return defHttp.post({ url: `${baseAPi}GetDriverTree`, data });
}
/**
 * @description: 获取预配置列表
 */
export function getDefaultDriverConfig() {
  return defHttp.post({ url: `${baseAPi}GetDefaultDriverConfig` });
}
/**
 * @description: 新增驱动信息
 */
export function addDriver(data) {
  return defHttp.post({ url: `${baseAPi}AddDriver`, data });
}
/**
 * @description: 获取驱动信息
 */
export function getDriverInfo(data) {
  return defHttp.post({ url: `${baseAPi}GetDriver`, data });
}
/**
 * @description: 编辑驱动信息
 */
export function updateDriverInfo(data) {
  return defHttp.post({ url: `${baseAPi}UpdateDriver`, data });
}
/**
 * @description: 删除驱动信息
 */
export function delDriverInfo(data) {
  return defHttp.post({ url: `${baseAPi}DelDriver`, data });
}
/**
 * @description: 删除分组信息
 */
export function delGroupInfo(data) {
  return defHttp.post({ url: `${baseAPi}DelGroup`, data });
}
/**
 * @description: 新增分组信息
 */
export function addGroupInfo(data) {
  return defHttp.post({ url: `${baseAPi}AddGroup`, data });
}
/**
 * @description: 编辑分组信息
 */
export function updateGroupInfo(data) {
  return defHttp.post({ url: `${baseAPi}UpdateGroup`, data });
}
/**
 * @description: 查询分组信息
 */
export function getGroupInfo(data) {
  return defHttp.post({ url: `${baseAPi}GetGroup`, data });
}
/**
 * @description: 新增tag信息
 */
export function addTagInfo(data) {
  return defHttp.post({ url: `${baseAPi}AddTag`, data });
}
/**
 * @description: 编辑tag信息
 */
export function updateTagInfo(data) {
  return defHttp.post({ url: `${baseAPi}UpdateTag`, data });
}
/**
 * @description: 删除tag信息
 */
export function delTagInfo(data) {
  return defHttp.post({ url: `${baseAPi}DelTag`, data });
}
/**
 * @description: tag列表
 */
export function getTagList(data) {
  return defHttp.post({ url: `${baseAPi}GetTagInfoByGroupId`, data });
}
/**
 * @description: 获取数据类型
 */
export function getDataType() {
  return defHttp.post({ url: `${baseAPi}GetDataType` });
}

/**
 * @description: 保存配置文件
 */
export function saveConfig() {
  return defHttp.post({ url: `${baseAPi}SaveConfig` });
}

/**
 * @description: 获取运行时驱动树
 */
export function getRunTimeDriverTree(data) {
  return defHttp.post({ url: `${baseAPi}GetRunTimeDriverTree`, data });
}

/**
 * @description: 获取运行时tags
 */
export function getRunTimeTagInfo(data) {
  return defHttp.post({ url: `${baseAPi}GetRunTimeTagInfo`, data });
}
/**
 * @description: 获取运行时tags
 */
export function writeTagValue(data) {
  return defHttp.post({ url: `${baseAPi}Write`, data });
}

/**
 * @description: 获取授权信息
 */
export function getAuthorization() {
  return defHttp.post({ url: `${baseAPi}GetAuthorization` });
}
/**
 * @description: 获取机器码
 */
export function getMachineCode() {
  return defHttp.post({ url: `${baseAPi}GetMachineCode` });
}
/**
 * @description: 下载授权文件
 */
export function downloadAuthorization(data) {
  return defHttp.post({ url: `${baseAPi}DownloadAuthorization`, data });
}

/**
 * @description: 获取设备连接状态
 */
export function getDeviceState(data) {
  return defHttp.post({ url: `${baseAPi}GetDeviceState`, data });
}
/**
 * @description: 获取驱动读写模式
 */
export function getReadWriteMode() {
  return defHttp.post({ url: `${baseAPi}GetReadWriteMode` });
}
/**
 * @description: 下载驱动
 */
export function downLoadDriver(data) {
  return defHttp.post(
    {
      url: `${baseAPi}exportbydriver`,
      data,
      responseType: 'blob',
    },
    {
      isReturnNativeResponse: true,
      isDownLoadUrl: true,
    },
  );
}
/**
 * @description: 下载分组
 */
export function downLoadGroup(data) {
  return defHttp.post(
    {
      url: `${baseAPi}exportbygroup`,
      data,
      responseType: 'blob',
    },
    { isReturnNativeResponse: true, isDownLoadUrl: true },
  );
}
/**
 * @description: 获取PLC读取文件路径类型
 */
export function getplcpathtype() {
  return defHttp.post({ url: `${baseAPi}getplcpathtype` });
}
/**
 * @description: 获取PLC文件解析的工作模式
 */
export function getworkmodel() {
  return defHttp.post({ url: `${baseAPi}getworkmodel` });
}
/**
 * @description: 重启保军服务器
 */
export function updateServer(data) {
  return defHttp.post({ url: `${baseBaoJunAPi}resstart`, data });
}
/**
 * @description: 获取Python编辑器提示信息
 */
export function getPythonDisplay() {
  return defHttp.post({ url: `${baseAPi}getpythondisplay` });
}
/**
 * @description: 获取寄存器列表
 */
export function getdriverregester(data) {
  return defHttp.post({ url: `${baseAPi}getdriverregester`, data });
}

/**
 * @description: 创建模板
 */
export function createtemplate(data) {
  return defHttp.post(
    { url: `${baseTemplateApi}createtemplate`, data },
    { isReturnNativeResponse: true },
  );
}

/**
 * @description: 获取模板集合
 */
export function gettemplatecollection() {
  return defHttp.post({ url: `${baseTemplateApi}gettemplatecollection` });
}

/**
 * @description: 删除模板
 */
export function deltemplate(data) {
  return defHttp.post({ url: `${baseTemplateApi}deltemplate`, data });
}
/**
 * @description: 从模板新增设备
 */
export function adddriverbytemplate(data) {
  return defHttp.post({ url: `${baseTemplateApi}adddriverbytemplate`, data });
}
/**
 * @description: 获取模板树
 */
export function gettemplatetree(data) {
  return defHttp.post({ url: `${baseTemplateApi}gettemplatetree`, data });
}
/**
 * @description: 获取模板tags
 */
export function gettemplatetag(data) {
  return defHttp.post({ url: `${baseTemplateApi}gettemplatetag`, data });
}
/**
 * @description: 获取模板设备详情
 */
export function gettemplat(data) {
  return defHttp.post({ url: `${baseTemplateApi}gettemplat`, data });
}
/**
 * @description: 修改设备详情
 */
export function updatetemplate(data) {
  return defHttp.post({ url: `${baseTemplateApi}updatetemplate`, data });
}
/**
 * @description: 获取模板分组信息
 */
export function gettemplategroup(data) {
  return defHttp.post({ url: `${baseTemplateApi}gettemplategroup`, data });
}
/**
 * @description: 新增模板分组
 */
export function addtemplategroup(data) {
  return defHttp.post({ url: `${baseTemplateApi}addtemplategroup`, data });
}
/**
 * @description: 删除模板分组
 */
export function deltemplategroup(data) {
  return defHttp.post({ url: `${baseTemplateApi}deltemplategroup`, data });
}
/**
 * @description: 更新模板分组
 */
export function updatetemplategroup(data) {
  return defHttp.post({ url: `${baseTemplateApi}updatetemplategroup`, data });
}
/**
 * @description: 新增模板tag
 */
export function addtemplatetag(data) {
  return defHttp.post({ url: `${baseTemplateApi}addtemplatetag`, data });
}

/**
 * @description: 删除模板tag
 */
export function deltemplatetag(data) {
  return defHttp.post({ url: `${baseTemplateApi}deltemplatetag`, data });
}

/**
 * @description: 更新模板tag
 */
export function updatetemplatetag(data) {
  return defHttp.post({ url: `${baseTemplateApi}updatetemplatetag`, data });
}

/**
 * @description: 同步设备更新
 */
export function savetemplateandupdate(data) {
  return defHttp.post({ url: `${baseTemplateApi}savetemplateandupdate`, data });
}

/**
 * @description: 批量新增
 */
export function batchAddTag(data) {
  return defHttp.post({ url: `${baseAPi}batchaddtag`, data });
}
/**
 * @description: 批量删除
 */
export function batchDelTag(data) {
  return defHttp.post({ url: `${baseAPi}batchdeltag`, data });
}

/**
 * @description: 获取新的tag名称
 */
export function GetCopyTagName(data) {
  return defHttp.post({ url: `${baseAPi}GetCopyTagName`, data });
}

/**
 * @description: 新增节点
 */
export function addnode(data) {
  return defHttp.post({ url: `${baseAPi}addnode`, data });
}

/**
 * @description: 编辑节点
 */
export function editnode(data) {
  return defHttp.post({ url: `${baseAPi}editnode`, data });
}

/**
 * @description: 删除节点
 */
export function deletenode(data) {
  return defHttp.post({ url: `${baseAPi}deletenode`, data });
}
/**
 * @description: 获取节点列表
 */
export function getnode() {
  return defHttp.post({ url: `${baseAPi}getnode` });
}
/**
 * @description: 获取IOT状态
 */
export function getiotstate() {
  return defHttp.post({ url: `${baseAPi}getiotstate` });
}
/**
 * @description: 获取主机信息
 */
export function getsysteminfo() {
  return defHttp.post({ url: `${baseAPi}getsysteminfo` });
}
/**
 * @description: 获取当前CPU使用率
 */
export function getcurrentcpu() {
  return defHttp.post({ url: `${baseAPi}getcurrentcpu` });
}
/**
 * @description: 获取当前内存使用率
 */
export function getcurrentmemory() {
  return defHttp.post({ url: `${baseAPi}getcurrentmemory` });
}
/**
 * @description: 获取实时诊断
 */
export function gettagsvalue(data) {
  return defHttp.post({ url: `${baseAPi}gettagsvalue`, data });
}
/**
 * @description: 设备全称
 */
export function getaddresstrees(data) {
  return defHttp.post({ url: `${baseAPi}getaddresstrees`, data });
}

/**
 * @description: 获取实时诊断
 */
export function getaddressgrid(data) {
  return defHttp.post({ url: `${baseAPi}getaddressgrid`, data });
}
/**
 * @description: 获取设备编码下拉信息
 */
export function getruntimedriverinfo(data) {
  return defHttp.post({ url: '/Device/getruntimedriverinfo', data });
}
/**
 * @description: 通过设备编码获取设备属性
 */
export function getequipmentruntimedata(data) {
  return defHttp.post({url: `${baseAPi}getequipmentruntimedata`, data });
}

/**
 * @description: 获取实时诊断新
 */
export function cachediagnosisgroup(data) {
  return defHttp.post({ url: `${baseAPi}cachediagnosisgroup`, data });
}